package main

import (
	"database/sql"
	"fmt"

	//为什么要在该包前加入下划线_,因为加入下划线表示只执行该库的 init 函数而不对其它导出对象进行真正地导入。
	//因为 Go 语言的数据库驱动都会在 init 函数中注册自己，所以我们只需要加入下划线导入即可。
	_ "github.com/go-sql-driver/mysql"
)

type Hr struct {
	id       int
	name     string
	phone    string
	password string
}

func main() {
	// DSN:Data Source Name
	dsn := "root:root@tcp(127.0.0.1:3306)/vhr"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		panic(err)
	} else {
		fmt.Println("ok")
	}
	rows, err := db.Query("SELECT id, name, phone, password FROM hr")
	if err != nil {
		panic(err)
	}

	for rows.Next() {
		var hr Hr
		rows.Scan(&hr.id, &hr.name, &hr.phone, &hr.password)
		fmt.Println(hr)
	}

	defer db.Close() // 注意这行代码要写在上面err判断的下面
}
